//
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
//
using UnityEngine;
using System.Collections.Generic;

public static class HuxInputList
{
	public static HUXInputEditing.InputControl WindowShakeX = new HUXInputEditing.InputControl(
		"Window Shake X",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0,
		0.1f,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl WindowShakeY = new HUXInputEditing.InputControl(
		"Window Shake Y",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0,
		0.1f,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.YAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl LookVertical = new HUXInputEditing.InputControl(
		"LookVertical",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0.2f,
		0.4f,
		false,
		true,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick5,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl LookHorizontal = new HUXInputEditing.InputControl(
		"LookHorizontal",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0.2f,
		0.4f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick4,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl FOVUp = new HUXInputEditing.InputControl(
		"FOV Up",
		"",
		"",
		"",
		"joystick button 7",
		"",
		"",
		0,
		1,
		3,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick9,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl FOVDown = new HUXInputEditing.InputControl(
		"FOV Up",
		"",
		"",
		"",
		"joystick button 8",
		"",
		"",
		0,
		1,
		3,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick10,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl Up = new HUXInputEditing.InputControl(
		"UP",
		"",
		"",
		"",
		"w",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick10,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl Down = new HUXInputEditing.InputControl(
		"DOWN",
		"",
		"",
		"",
		"s",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick10,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl AButton_360 = new HUXInputEditing.InputControl(
		"360_AButton",
		"",
		"",
		"",
		"joystick button 0",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		true,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl BButton_360 = new HUXInputEditing.InputControl(
		"360_BButton",
		"",
		"",
		"",
		"joystick button 1",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl XButton_360 = new HUXInputEditing.InputControl(
		"360_XButton",
		"",
		"",
		"",
		"joystick button 2",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl YButton_360 = new HUXInputEditing.InputControl(
		"360_YButton",
		"",
		"",
		"",
		"joystick button 3",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl LeftBumper_360 = new HUXInputEditing.InputControl(
		"360_LeftBumper",
		"",
		"",
		"",
		"joystick button 4",
		"",
		"",
		1,
		0.01f,
		0.1f,
		true,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.JoystickAndScrollWheel,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl RightBumper_360 = new HUXInputEditing.InputControl(
		"360_RightBumper",
		"",
		"",
		"",
		"joystick button 5",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl BackButton_360 = new HUXInputEditing.InputControl(
		"360_BackButton",
		"",
		"",
		"",
		"joystick button 6",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl StartButton_360 = new HUXInputEditing.InputControl(
		"360_StartButton",
		"",
		"",
		"",
		"joystick button 7",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl LeftThumbstickButton_360 = new HUXInputEditing.InputControl(
		"360_LeftThumbstickButton",
		"",
		"",
		"",
		"joystick button 8",
		"",
		"",
		1,
		0.001f,
		1,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl RightThumbstickButton_360 = new HUXInputEditing.InputControl(
		"360_RightThumbstickButton",
		"",
		"",
		"",
		"joystick button 9",
		"",
		"",
		1000,
		0.001f,
		1000,
		false,
		false,
		HUXInputEditing.AxisType.KeyOrMouseButton,
		HUXInputEditing.AxisNum.Joystick10,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl Triggers_360_Left = new HUXInputEditing.InputControl(
		"360_LTrigger",
		"",
		"",
		"",
		"",
		"",
		"",
		1000,
		0.001f,
		1,
		false,
		true,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.JoystickAndScrollWheel,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

    public static HUXInputEditing.InputControl Triggers_360_Right = new HUXInputEditing.InputControl(
        "360_RTrigger",
        "",
        "",
        "",
        "",
        "",
        "",
        1000,
        0.001f,
        1,
        false,
        true,
        HUXInputEditing.AxisType.JoystickAxis,
        HUXInputEditing.AxisNum.JoystickAndScrollWheel,
        HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

    public static HUXInputEditing.InputControl HorizontalDPAD_360 = new HUXInputEditing.InputControl(
		"360_HorizontalDPAD",
		"",
		"",
		"",
		"",
		"",
		"",
		3,
		0.01f,
		0.3f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick6,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl VerticalDPAD_360 = new HUXInputEditing.InputControl(
		"360_VerticalDPAD",
		"",
		"",
		"",
		"",
		"",
		"",
		3,
		0.01f,
		0.3f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick7,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl RightStick = new HUXInputEditing.InputControl(
		"RightStick",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0.19f,
		1,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick4,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl LeftStickV = new HUXInputEditing.InputControl(
		"LeftStickV",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0.1f,
		0.5f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.YAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl LeftStickH = new HUXInputEditing.InputControl(
		"LeftStickH",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0.1f,
		0.5f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.XAxis,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl RightStickH = new HUXInputEditing.InputControl(
		"RightStickH",
		"",
		"",
		"",
		"",
		"",
		"",
		0,
		0.1f,
		0.5f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick4,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl RightStickV = new HUXInputEditing.InputControl(
		"RightStickV",
		"",
		"",
		"",
		"joystick button 8",
		"",
		"",
		0,
		0.1f,
		0.5f,
		false,
		false,
		HUXInputEditing.AxisType.JoystickAxis,
		HUXInputEditing.AxisNum.Joystick5,
		HUXInputEditing.JoyNum.MotionsFromAllJoysticks);

	public static HUXInputEditing.InputControl[] ALL_CONTROLS =
    {
		WindowShakeX,
		WindowShakeY,
		LookVertical,
		LookHorizontal,
		FOVUp,
		FOVDown,
		Up,
		Down,
		AButton_360,
		BButton_360,
		XButton_360,
		YButton_360,
		LeftBumper_360,
		RightBumper_360,
		BackButton_360,
		StartButton_360,
		LeftThumbstickButton_360,
		RightThumbstickButton_360,
        Triggers_360_Left,
        Triggers_360_Right,
        HorizontalDPAD_360,
		VerticalDPAD_360,
		RightStick,
		LeftStickV,
		LeftStickH,
		RightStickH,
		RightStickV
	};
}
